#include "advancedsearchparamsdialog.h"
#include "ui_advancedsearchparamsdialog.h"
#include <QMessageBox>

AdvancedSearchParamsDialog::AdvancedSearchParamsDialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::AdvancedSearchParamsDialog)
{
    ui->setupUi(this);
}

AdvancedSearchParamsDialog::~AdvancedSearchParamsDialog()
{
    delete ui;
}

void AdvancedSearchParamsDialog::on_startSearchButton_pressed()
{
    if( ui->partOfFilename->text().isEmpty() &&
        ui->partOfCommentary->text().isEmpty() &&
        ui->tagList->count() == 0)
        QMessageBox::information(this, "Невозможно начать поиск", "Невозможно начать поиск, если не указано что искать");
    else
    {
        QStringList tagList;

        for( int i = 0; i < ui->tagList->count(); i++)
            tagList << ui->tagList->item(i)->text();

        emit readyToSearch(ui->partOfFilename->text(),
                           ui->partOfCommentary->text(),
                           tagList);

        deleteLater();
    }
}

void AdvancedSearchParamsDialog::on_plusButton_pressed()
{
    addTagDialog = new addTag_dialog(this);
    addTagDialog->show();

    connect( addTagDialog, SIGNAL(tagReady()), SLOT( getTag()));
}

void AdvancedSearchParamsDialog::on_minusButton_pressed()
{
    QListWidgetItem *itemToDelete = ui->tagList->currentItem();

    itemToDelete->setHidden(true);
    delete itemToDelete;

    if( ui->tagList->count() == 0)
        ui->minusButton->setEnabled(false);
}

void AdvancedSearchParamsDialog::getTag()
{
    bool alreadyHave = false;

    for( int i = 0; i < ui->tagList->count(); i++)
        if( ui->tagList->item(i)->text() == addTagDialog->getTag())
            alreadyHave = true;

    if( alreadyHave )
        QMessageBox::information(this, "Тег уже есть", tr("Тег \"%1\" уже есть в списке").arg((addTagDialog->getTag())));
    else
    {
        ui->tagList->addItem( addTagDialog->getTag());
        ui->tagList->item( ui->tagList->count() - 1)->setBackgroundColor(QColor("#B8E5FF"));
        ui->tagList->item( ui->tagList->count() - 1)->setIcon(QIcon(":/icons/tag_icon.png"));
    }
    addTagDialog->close();
    delete addTagDialog;
}
